package com.greyu.ysj.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.greyu.ysj.config.ResultStatus;
import com.greyu.ysj.entity.CbtInvest;
import com.greyu.ysj.entity.CbtUserUpdate;
import com.greyu.ysj.entity.CbtUserUpdateExample;
import com.greyu.ysj.mapper.CbtUserUpdateMapper;
import com.greyu.ysj.model.ResultModel;
import com.greyu.ysj.service.CbtUserUpdateMapperService;
@Service
public class CbtUserUpdateMapperServiceImpl implements CbtUserUpdateMapperService {
	@Autowired
	private CbtUserUpdateMapper cbtUserUpdateMapper;
	@Override
	public ResultModel save(CbtUserUpdate cbtUserUpdate) {
		// TODO Auto-generated method stub
		if (null == cbtUserUpdate.getMemberId() 
				|| null == cbtUserUpdate.getStatus())
		{
			return ResultModel.error(ResultStatus.DATA_NOT_NULL);
		}
		//进行跟进用ID进行查找
		
//		CbtUserUpdateExample cbtUserUpdateTmpExample = new CbtUserUpdateExample();
//		CbtUserUpdateExample.Criteria criteria = cbtUserUpdateTmpExample.createCriteria();
//		criteria.andMemberIdEqualTo(cbtUserUpdate.getMemberId());
//		//
//        List<CbtUserUpdate> cbtUserUpdateList = this.cbtUserUpdateMapper.selectByExample(cbtUserUpdateTmpExample);

//        if (cbtUserUpdateList.size() == 0) {
        	this.cbtUserUpdateMapper.insert(cbtUserUpdate);
//        }
        return ResultModel.ok(cbtUserUpdate);	
	}

	@Override
	public ResultModel update(List<CbtUserUpdate> cbtUserUpdateList, int flag) {
		// TODO Auto-generated method stub
		if (cbtUserUpdateList.size() <=0) {
			return null;
		}
		for (CbtUserUpdate cbtUserUpdate : cbtUserUpdateList) {
			CbtUserUpdateExample cbtUserUpdateTmpExample = new CbtUserUpdateExample();
			CbtUserUpdateExample.Criteria criteria = cbtUserUpdateTmpExample.createCriteria();
			criteria.andMemberIdEqualTo(cbtUserUpdate.getMemberId());
			cbtUserUpdate.setStatus(flag);
			this.cbtUserUpdateMapper.updateByExample(cbtUserUpdate, cbtUserUpdateTmpExample);
		}
		return ResultModel.ok(cbtUserUpdateList);
	}

	@Override
	public ResultModel delete(List<CbtUserUpdate> cbtUserUpdateList) {
		// TODO Auto-generated method stub
		if (cbtUserUpdateList.size() <=0) {
			return null;
		}
		for (CbtUserUpdate cbtUserUpdate : cbtUserUpdateList) {
			CbtUserUpdateExample cbtUserUpdateTmpExample = new CbtUserUpdateExample();
			CbtUserUpdateExample.Criteria criteria = cbtUserUpdateTmpExample.createCriteria();
			criteria.andMemberIdEqualTo(cbtUserUpdate.getMemberId());
			this.cbtUserUpdateMapper.deleteByExample(cbtUserUpdateTmpExample);
		}
		return ResultModel.ok(cbtUserUpdateList);
	}

	@Override
	public List<CbtUserUpdate> selectPrcessList(CbtUserUpdate btUserUpdate) {
		// TODO Auto-generated method stub
		CbtUserUpdateExample cbtUserUpdateTmpExample = new CbtUserUpdateExample();
		CbtUserUpdateExample.Criteria criteria = cbtUserUpdateTmpExample.createCriteria();
		if (null != btUserUpdate.getMemberId()) {
			criteria.andMemberIdEqualTo(btUserUpdate.getMemberId());
		}
		if (null != btUserUpdate.getStatus() ) {
			criteria.andStatusEqualTo(btUserUpdate.getStatus());
		}
		//
        List<CbtUserUpdate> cbtUserUpdateList = this.cbtUserUpdateMapper.selectByExample(cbtUserUpdateTmpExample);
        return cbtUserUpdateList;
	}

	@Override
	public List<CbtUserUpdate> selectUpdateByStatus(Integer status) {
		
		return cbtUserUpdateMapper.selectUpdateByStatus(status);
	}

	@Override
	public ResultModel updateStatus(Integer status, Integer id) {
		
		CbtUserUpdate cbtUserUpdate=this.cbtUserUpdateMapper.selectByPrimaryKey(id);
		// TODO Auto-generated method stub
		if(cbtUserUpdate == null) {
			return ResultModel.error(ResultStatus.DATA_NOT_FOUND);
		}
		cbtUserUpdate.setStatus(status);
		cbtUserUpdateMapper.updateByPrimaryKey(cbtUserUpdate);
		return ResultModel.error(cbtUserUpdate);
	}

	@Override
	public List<CbtUserUpdate> selectUpdateAll() {
		// TODO Auto-generated method stub
		return cbtUserUpdateMapper.selectUpdateAll();
	}
}
